Skip to content

chore(kenari): refresh model catalog from the live endpoint - #7052

Closed
doedja wants to merge 4 commits into
anomalyco:devfrom
doedja:chore/kenari-catalog-refresh-2026-09-14
Closed

doedja wants to merge 4 commits into
anomalyco:devfrom
doedja:chore/kenari-catalog-refresh-2026-09-14

Conversation

@doedja

@doedja doedja commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Data-only refresh of the Kenari catalog against the live public
https://kenari.id/v1/models endpoint. 16 models added, 8 removed, 6
already-merged rows corrected. No adapter or sync code in this branch.

Related: #5727 (Kenari sync adapter) is still open from 2026-08-28. This
refresh is against current dev so the picker catalog can catch up
without waiting on that adapter.

Added (16)

Every field below comes from GET https://kenari.id/v1/models, which is
public and needs no key.

model id base_model reasoning_options from the endpoint
deepseek-v4-1-flash deepseek/deepseek-v4.1-flash toggle + ["low","high","max"]
gemini-3-8-flash google/gemini-3.8-flash ["low","medium","high"]
gpt-5-4 openai/gpt-5.4 ["none","low","medium","high","xhigh"]
gpt-6-astra openai/gpt-6-astra ["low","medium","high","xhigh","max"]
hy4-preview tencent/hy4-preview ["none","low","high"]
laguna-s-2-1:free poolside/laguna-s-2.1 toggle (Poolside first-party)
laguna-xs-2-1:free poolside/laguna-xs-2.1 toggle (Poolside first-party)
muse-spark-1-2 meta/muse-spark-1.2 ["minimal","low","medium","high","xhigh"]
muse-spark-1-2-contributor meta/muse-spark-1.2 same (name override, same as Meta first-party)
muse-spark-1-2-contributor:free meta/muse-spark-1.2 same
muse-spark-1-3 meta/muse-spark-1.3 ["minimal","low","medium","high","xhigh","max"]
muse-spark-1-3-contributor meta/muse-spark-1.3 ["minimal","low","medium","high","xhigh"]
muse-spark-1-3-contributor:free meta/muse-spark-1.3 same
nemotron-3-ultra-550b-a55b:free nvidia/nemotron-3-ultra-550b-a55b toggle + ["medium","high"]
north-mini-code:free cohere/north-mini-code-1-0 ["none","high"] (Cohere first-party)
qwen3-8-flash alibaba/qwen3.8-flash toggle + ["low","medium","xhigh"]

Contributor rows follow Meta's own files: same base_model, display
name override. north-mini-code:free folds onto
cohere/north-mini-code-1-0.

Corrected (6 existing rows)

model id was now why
deepseek-v4-flash ["high","xhigh"] toggle + ["low","high","max"] DeepSeek lab + Kenari $.reasoning.enabled
deepseek-v4-pro ["high","xhigh"] toggle + ["high","max"] same
nemotron-3-super-120b-a12b effort ["low","medium"] toggle + ["low","medium"] NVIDIA toggle; Kenari forwards $.reasoning.enabled
nemotron-3-super-120b-a12b:free effort ["low","medium"] same same
nemotron-3-ultra-550b-a55b effort ["medium","high"] toggle + ["medium","high"] same
gpt-oss-20b full inline TOML base_model = "openai/gpt-oss-20b" lab entry exists now

Removed (8)

Confirmed absent from the live response:

deepseek-v4-flash:free, gemini-3-5-flash, glm-5-1, grok-build-0-1,
kimi-k2-6:free, kimi-k2-7-code:free, mistral-large:free,
nemotron-3-nano-30b-a3b

Skipped

Video endpoints, left out of this picker list:

gemini-omni-flash, veo-3.1-lite

No canonical models/ entry to inherit from, so not authored from the
feed (the endpoint still has no name or release-date data):

agnes-2-0-flash:free, agnes-2-5-flash:free, grok-imagine-image,
grok-imagine-image-quality, kokoro-tts, mimo-v2-5-tts,
minimax-speech-2-8-hd, minimax-speech-2-8-turbo, nano-banana-2,
nano-banana-2-lite, nano-banana-pro, nex-n2-5-pro:free

grok-imagine-image is not folded onto grok-imagine-image-2.0. That
would give two live IDs the same lab entry.

Image (gpt-image-2, grok-imagine-image-2-0) and audio
(whisper-large-v3-turbo, gemini-3-1-flash-tts) stay.

Kenari is a multi-model OpenAI-compatible relay. It forwards
$.reasoning.enabled and reasoning_effort. It does not expose Alibaba
thinking_budget, so budget_tokens is not authored.

Cost stays 0

Kenari bills a prepaid wallet in Indonesian rupiah. A USD per-token
figure here would be a currency conversion that drifts. Same treatment
as the previous merged refreshes.

Verification

  • Source: GET https://kenari.id/v1/models on 2026-09-14 (81 live models)
  • bun ./packages/core/script/validate.ts exits 0 (67 Kenari entries after merge)

Sync providers/kenari with GET https://kenari.id/v1/models: 18 added, 8
removed, 6 existing rows corrected. Cost stays 0 (IDR wallet).
Leave gemini-omni-flash and veo-3.1-lite out of providers/kenari.
Video endpoints are not part of this picker list.
@github-actions

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/kenari/models/nemotron-3-ultra-550b-a55b.toml:2 - Check: Relay reasoning_options must not be [] from missing endpoint fields when lab/peers expose controls. Why: This PR replaces prior Kenari effort ["medium", "high"] (aligned with OpenRouter peers) with [] because the catalog omitted options. Lab NVIDIA uses toggle; OpenRouter uses toggle + medium/high. Empty means no caller control, not “not published.” Same regression on the free twin. Action: Restore real controls (at least prior/openrouter effort, and toggle if Kenari forwards on/off); only keep [] with affirmative proof this host has no control. Apply the same fix to nemotron-3-ultra-550b-a55b:free.toml, nemotron-3-super-120b-a12b.toml, and nemotron-3-super-120b-a12b:free.toml.
  • [high] [violation] providers/kenari/models/qwen3-8-flash.toml:2 - Check: Multi-model relay of a controlled reasoner must copy lab/same-surface peer options, not invent [] from catalog gaps. Why: base_model = "alibaba/qwen3.8-flash" is a reasoner; Alibaba first-party and peers (OpenRouter, Vercel) expose toggle and often budget_tokens / effort. Authoring reasoning_options = [] because Kenari’s models list published none is the documented anti-pattern and hides caller controls. Action: Set options from Alibaba + openai-compatible peers that match what Kenari actually forwards (typically toggle + budget_tokens and/or lab effort); do not leave [] without host proof of no control.
  • [high] [violation] providers/kenari/models/north-mini-code:free.toml:3 - Check: Relay baseline = lab + peers for that model. Why: PR rationale is reasoning: true, none published → []. Cohere first-party is effort ["none", "high"]; other free hosts keep controls. [] here is uncertainty, not affirmative no control. Action: Use [{ type = "effort", values = ["none", "high"] }] (or Kenari-verified equivalent); only use [] if the host truly has no reasoning parameter.
  • [high] [violation] providers/kenari/models/laguna-s-2-1:free.toml:3 - Check: Same relay [] rule for models with lab toggle. Why: Poolside first-party Laguna S/XS 2.1 uses toggle (chat_template_kwargs.enable_thinking). Catalog omission is not evidence Kenari has no control. Action: Match lab/peers (toggle with a leading wire comment if supported, or verified effort); apply the same to laguna-xs-2-1:free.toml. Do not use [] solely because the endpoint omitted options.

Stop authoring empty [] from a missing catalog list. Kenari forwards
$.reasoning.enabled and reasoning_effort, so copy lab/peer controls:
Nemotron toggle plus prior OpenRouter efforts, Qwen3.8 Flash toggle plus
lab low/medium/xhigh, North Mini Code none/high, Laguna S/XS toggle.
@doedja

doedja commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the reviewer action items on the eight [] files.

Kenari is a multi-model relay. It forwards $.reasoning.enabled and reasoning_effort. Empty lists from a missing /v1/models field are gone.

  • Nemotron Super/Ultra (paid and free): toggle plus the prior OpenRouter effort lists (low/medium on Super, medium/high on Ultra). NVIDIA first-party is toggle-only; Kenari also forwards effort, so both stay.
  • qwen3-8-flash: toggle plus Alibaba lab effort low/medium/xhigh. No budget_tokens; Kenari has no thinking_budget field.
  • north-mini-code:free: Cohere first-party effort none/high (no toggle; none is the off switch).
  • Laguna S/XS 2.1 free: Poolside first-party toggle.

bun ./packages/core/script/validate.ts still exits 0.

@github-actions

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/kenari/models/deepseek-v4-1-flash.toml:3 - Check: DeepSeek V4 on a relay that exposes on/off must copy lab toggle + effort (not effort alone). Why: Lab Flash/V4.1 Flash is toggle + low/high/max; this PR states Kenari forwards $.reasoning.enabled and adds that toggle for Nemotron/Laguna/Qwen, but the three DeepSeek rows only author effort. Callers lose the documented on/off control. Action: Add [[reasoning_options]] type = "toggle" (with a leading # Toggle: $.reasoning.enabled = true|false comment) alongside the existing effort list on deepseek-v4-1-flash.toml, deepseek-v4-flash.toml, and deepseek-v4-pro.toml (high/max for Pro).

Lab Flash/Pro expose on/off plus effort. Kenari forwards
$.reasoning.enabled, so the three DeepSeek rows now author toggle
alongside the existing effort lists.
@doedja

doedja commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Latest reviewer item: DeepSeek V4 on this relay needs lab toggle plus effort, not effort alone.

deepseek-v4-1-flash, deepseek-v4-flash, and deepseek-v4-pro now author toggle ($.reasoning.enabled) next to the existing effort lists (low/high/max on Flash, high/max on Pro). Matches DeepSeek first-party.

bun ./packages/core/script/validate.ts still exits 0.

@github-actions

Copy link
Copy Markdown
Contributor

No actionable findings.

@github-actions github-actions Bot added the reviewer: ready Automated review found no actionable items label Sep 14, 2026
@doedja doedja closed this Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

reviewer: ready Automated review found no actionable items

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant